#include "xos_core_c.h"

void xos_core_star()
{
	extern	xos_core_stk_reg now;
	xos_core_staros(&now);
}

uint8_t nowb[100] ;
uint8_t nextb[100];
xos_core_stk_reg next;
uint8_t xos_core_star_flag;
void xos_core_create_task(void*fun,xos_core_stk_reg *stk)
{
	uint8_t i=0,*p=(uint8_t*)stk;
    static uint8_t ii=0;
	for(i=0;i<sizeof(xos_core_stk_reg);i++)
	{
		*(p++)=0;
	}
	if(ii==0)stk->r13=(uint32_t)&nowb[99]+1;
  else stk->r13=(uint32_t)&nextb[99]+1;
	
	for(i=0;i<sizeof(nowb);i++)
	{
		*((uint8_t*)(stk->r13)-i-1)=0xdd;
	}
    ++ii;
//	stk->sp=(uint32_t)stk;
	stk->r14=((uint32_t)fun);
	xos_core_star_flag=1;
}

 uint8_t ii;
void xos_core_switch()
{
		extern	xos_core_stk_reg now;
		extern	xos_core_stk_reg next;
		
	if(ii)
	{
		ii=0;
		xos_core_backup_reg(&next,&now);
	}
	else
	{
		ii=1;
			xos_core_backup_reg(&now,&next);	
	}

}
